feat: /cursor:adversarial-review, estimate-first reviews, composer-prompting skill#15
Merged
Merged
Conversation
…r-prompting skill Ported from upstream openai/codex-plugin-cc, adapted to the Cursor CLI. - /cursor:adversarial-review: first-class steerable review that challenges the design and approach (assumptions, tradeoffs, failure modes), not just defects. Reuses review.mjs --adversarial, so --base/--scope/--model/wait/background and focus text all work and it is tracked as a normal job. Sharpened the adversarial framing in the review prompt. - Estimate-first reviews: /cursor:review and /cursor:adversarial-review now gauge the diff size and ask wait-vs-background once (AskUserQuestion) when no explicit mode is passed. Both moved to a model-orchestrated flow; allowed-tools gained Bash(git:*) and AskUserQuestion. Background still uses the plugin's own detached worker, not a Claude background task. - composer-prompting skill: extracted the Cursor prompt-shaping guidance (repo grounding, five-section anatomy + guardrails, chunking, model choice, resume vs fresh) into skills/composer-prompting/SKILL.md; cursor-runner references it via a new skills: frontmatter entry. Bumped to 0.4.0; updated README, AGENTS.md, CHANGELOG; added tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports three things from upstream
openai/codex-plugin-cc, adapted to the Cursor CLI, and bumps the plugin to 0.4.0:/cursor:adversarial-review— a first-class steerable review command that challenges the chosen implementation and design (assumptions, tradeoffs, failure modes, whether a different approach would be simpler/safer), not just implementation defects. It reuses the existing review runtime (review.mjs --adversarial), so--base/--scope/--model/--wait/--backgroundand free-form focus text all work, and it is tracked as a normal job (/cursor:status,/cursor:result,/cursor:cancel). Promotes what used to be only the--adversarialflag into a discoverable command with sharper framing./cursor:reviewand/cursor:adversarial-reviewnow gauge the diff size (git status/git diff --shortstat) and ask wait vs background once viaAskUserQuestionwhen no explicit mode is passed (recommending background beyond a tiny 1–2 file change). Explicit--wait/--backgroundskip the question. Both commands moved from an auto-executing one-liner to a model-orchestrated flow; theirallowed-toolsgainedBash(git:*)andAskUserQuestion. Background runs still use the plugin's own detached worker (script returns a job id immediately), not a Claude background task.composer-promptingskill — the Cursor prompt-shaping guidance (repo grounding, five-section prompt anatomy + guardrails, chunking heuristics, model selection, resume-vs-fresh) now lives inskills/composer-prompting/SKILL.md. Thecursor-runnersubagent references it via a newskills:frontmatter entry instead of restating it inline. Mirrors codex's internalgpt-5-4-promptingskill.Deliberately skipped (out of scope for this PR): the stop-review-gate
Stophook and/transfer(the latter depends on a Codex-specific external-session importer thatcursor-agentdoes not have).Behaviour note:
review.mdnow setsdisable-model-invocation: true(matching upstream), so/cursor:reviewis user-invoked only — the model no longer auto-triggers the slash command.Test plan
npm test— all specs green (89 tests, incl. 2 new: adversarial end-to-end +buildReviewPromptframing unit test)npm run lint— prettier + eslint cleanreview.mjs --adversarial --wait -- "<focus>"and--adversarial --background -- "<focus>"against the stubcursor-agent: foreground reports(model auto, adversarial)→Status: done→ Review section; background self-detaches and prints the job id +/cursor:statushints.README.md,AGENTS.md,CHANGELOG.md)Checklist
review.mjs; no new script/deps)dist/or.tsfiles$ARGUMENTSis quoted in the edited/addedcommands/*.mdAGENTS.md(estimate-first commands are model-orchestrated and reusereview.mjs)CHANGELOG.md(under## 0.4.0)